<?php

App::uses('AppController', 'Controller');

/**
 * Insumos Controller
 *
 * @property Insumo $Insumo
 */
class PagosController extends AppController
{

    public $uses = array(
        'Pedido',
        'Insumo',
        'Categoria',
        'Lugare',
        'Ambiente',
        'Mesa',
        'Clase',
        'Producto',
        'Item',
        'Movimiento',
        'Parametrosfactura', 'Cliente', 'Factura','InsumosProducto','Aderezo','User');
    
    public $layout = 'pizza';
    public $components = array('Ultimomovimiento', 'Codigocontrol', 'Fechasconvert', 'Montoliteral');

    public function beforeFilter()
    {
        parent::beforeFilter();
        $this->Auth->allow('*'); // We can remove this line after we�re finished
    }

    public function index()
    {
        $fecha = date('Y-m-d');
        $pedidos = $this->Pedido->find('all', array(
            'recursive' => 1,
            'conditions' => array('Pedido.fecha' => $fecha)
                ));
        //debug($pedidos);exit;
        $this->set(compact('pedidos'));
    }
    public function pedidosanteriores(){
        $pedidos = $this->Pedido->find('all', array(
            'recursive' => 1,
            'order' => array('Pedido.fecha DESC')
                ));
        //debug($pedidos);exit;
        $this->set(compact('pedidos'));
    }
    public function verpedido($idPedido = null)
    {
        $fecha = date('Y-m-d');
        $datos = $this->Pedido->find('first', array(
        'conditions'=>array('Pedido.id'=>$idPedido), 
        'recursive'=>0
        ));
        
        $mesa =$datos['Mesa']['nombre'];
        $mozo = $datos['User']['nombre'];
        $estadoPedido = $datos['Pedido']['estado'];
        $itemsllevar = $this->Item->find('all', 
        array(
        'conditions'=>array('Item.pedido_id'=>$idPedido,'Item.llevar'=>1),
        'order'=>array('Item.producto_id ASC')
        ));
        $items = $this->Item->find('all', 
        array(
        'conditions'=>array('Item.pedido_id'=>$idPedido,'Item.llevar'=>0,'Item.cantidad !='=>0),
        'order'=>array('Item.producto_id ASC')
        ));
        $this->set(compact('itemsllevar', 'items','idPedido', 'mesa', 'mozo', 'estadoPedido'));
    }        
    public function ajaxnombre($nit=null){
        $this->layout = 'ajax';
        $nombre = $this->Cliente->find('first', array('conditions'=>array('Cliente.nit'=>$nit)));
        if(!empty($nombre)){
            $nombre = $nombre['Cliente']['nombrenit'];
            $existe =1;
        }else{
            $nombre = null;
            $existe =0;
        }
        $this->set(compact('nombre', 'existe'));
    }
    public function facturar()
    {
        $this->layout = 'imprime';
        $usuario = $this->Session->read('Auth.User.nombre');
        
        $existe = $this->request->data['Pagos']['existe'];
        $pedido = $this->request->data['Pagos']['pedido'];
        
        $montoTotal = $this->request->data['Pagos']['monto'];
        $nit = $this->request->data['Pagos']['nit'];
        $nombre = $this->request->data['Pagos']['nombre'];
        $efectivo = $this->request->data['Pagos']['efectivo'];
        $efectivo = number_format($efectivo, 2, '.',',');
        $cambio = $this->request->data['Pagos']['cambio'];
        $cambio = number_format($cambio, 2, '.',',');
        $this->request->data='';
        
        if(!$existe){
            $this->request->data['Cliente']['nombre']= $nombre;
            $this->request->data['Cliente']['nombrenit']=$nombre;
            $this->request->data['Cliente']['nit']=$nit;
            $this->Cliente->create();
            $this->Cliente->save($this->request->data);
        }
        
        $data = array('id'=>$pedido, 'estado'=>4,'monto'=>$montoTotal);
        $this->Pedido->save($data);
        
        $pedidodato = $this->Pedido->find('first', array('conditions'=>array('Pedido.id'=>$pedido)));
        $mesa = $pedidodato['Pedido']['mesa_id'];
        $data = '';
        if($mesa != 0){
            $data = array('id'=>$mesa, 'estado'=>1);
            $this->Mesa->save($data);  
        }
        
        
        $datos = $this->Item->find('all', array(
        'conditions'=>array('Item.pedido_id'=>$pedido)));
        
        $this->request->data='';
        
        $datosFactura = $this->Parametrosfactura->find('first');
       
        $factura = $this->Factura->find('first', array('order'=>array('Factura.id DESC')));
        
        if(empty($factura)){
            $numero = 1;
            
        }else
           $numero = $factura['Factura']['nro'] + 1;
        
        $idFactura = $this->Fechasconvert->doNumeroFactura($numero);
      
        $nitEmpresa= $datosFactura['Parametrosfactura']['nit']; 
        $autoriza = $datosFactura['Parametrosfactura']['numero_autorizacion'];
       
        $fechalimite = $this->Fechasconvert->doRevert($datosFactura['Parametrosfactura']['fechalimite']);
        
        $nitcliente = $nit;
        $fecha = date('d/m/Y');
        $nueva_fecha = $this->Fechasconvert->doFechaPass(date('d/m/Y'));
     
        $rtotal = $montoTotal;
        $llave = $datosFactura['Parametrosfactura']['llave']; 
        //'9rCB7Sv4X29d)5k7N%3ab89p-3(5[A';

        //$this->Codigocontrol->CodigoControl('29040011007', '1503', '4189179011', '20070702', '2500', '9rCB7Sv4X29d)5k7N%3ab89p-3(5[A');
        $this->Codigocontrol->CodigoControl($autoriza, $idFactura, $nitcliente, $nueva_fecha, $rtotal, $llave);
        $codigo = $this->Codigocontrol->generar();
        $this->request->data['Factura']['numero'] = $idFactura;
        $this->request->data['Factura']['nro'] = $numero;
        $this->request->data['Factura']['codigocontrol'] = $codigo;
        $this->request->data['Factura']['cliente'] = $nombre;
        $this->request->data['Factura']['nit'] = $nit;
        $this->request->data['Factura']['importetotal'] = $montoTotal;
        $this->request->data['Factura']['pago'] = $cambio;
        $this->request->data['Factura']['numero'] = $idFactura;
        $this->request->data['Factura']['cambio'] = $cambio;
        $this->Factura->create();
        
        $total = number_format($montoTotal, 2, '.', ',');
        //debug($total);
        $monto = split('\.', $total);
        $entero = $monto['0'];
        $decimales = $monto['1'];
        //debug($decimales);
        $literal = $this->Montoliteral->getMontoliteral($entero);
        $literal = strtoupper($literal);
        //debug($literal);exit;
        
        if($this->Factura->save($this->request->data['Factura'])){
            $itemsllevar = $this->Item->find('all', 
            array(
            'conditions'=>array('Item.pedido_id'=>$pedido,'Item.llevar'=>1),
            'order'=>array('Item.producto_id ASC')
            ));
            $items = $this->Item->find('all', 
            array(
            'conditions'=>array('Item.pedido_id'=>$pedido,'Item.llevar'=>0,'Item.cantidad !='=>0),
            'order'=>array('Item.producto_id ASC')
            ));
            //debug($items);exit;
            $this->set(compact('items', 'itemsllevar','pedido', 'nit', 'datos', 'nitEmpresa', 'idFactura','autoriza','codigo','total','efectivo','cambio','literal','decimales', 'nombre','fechalimite', 'usuario'));
        }else{
            $this->Session->setFlash('Error al generar la factura', 'alerts/alert');
        }
        
    }
    
    public function pagar($idPedido=null){
       
        $data = array('id'=>$idPedido, 'estado'=>3);
        
        if($this->Pedido->save($data)){
            $data ='';
            $pedido = $this->Pedido->find('first', array('conditions'=>array('Pedido.id'=>$idPedido)));
          
            $idMesa = $pedido['Pedido']['mesa_id'];
            if($idMesa != 0){
                $data = array('id'=>$idMesa, 'estado'=>1);
                $this->Mesa->save($data);    
            }
            
            
            $this->Session->setFlash('Se registro el pago', 'alerts/bueno');
            $this->redirect(array('action'=>'index'));
        }else{
            $this->Session->setFlash('Error al generar el pago', 'alerts/alert');
            $this->redirect(array('action'=>'index'));
        }
    }
    public function cancelarpedido($idPedido = null){
        
        $idUsuario = $this->Session->read("Auth.User.id");
        $this->validadmin($idUsuario);
        
        $pedido = $this->Pedido->find('first', array('conditions'=>array('Pedido.id'=>$idPedido)));
        $pedidoNumero = $pedido['Pedido']['numero'];
        $idMesa = $pedido['Pedido']['mesa_id'];
        
       
        $data = array('id'=>$idPedido, 'estado'=>5, 'user_id'=>$idUsuario);
        $this->Pedido->save($data);
        
        if($idMesa != 0 || $idMesa != null){
            $data = '';
            $data = array('id' => $idMesa, 'estado' => 1);
            $this->Mesa->save($data);
        }
        
        $this->Session->setFlash(__('Se cancelo el pedido NRO '.$pedidoNumero), 'alerts/bueno');
        $this->redirect(array('controller' => 'pagos', 'action'=>'index'));
    }
    function validadmin($idUsuario = null){
        $administrador = $this->User->find('first', array(
        'conditions'=>array('User.id'=>$idUsuario,'Group.name LIKE'=>'%administrador%')
        ));
        
        if(empty($administrador)){
            $this->Session->setFlash('Ud. no tiene suficientes privilegios para realizar esta accion, comuniquese con su administrador', 'alerts/alert');
            $this->Session->redirect(array('action'=>'verpedido', $idPedido));
        }
    }
    public function cancelarpedido2($idPedido=null){
        
        $idUsuario = $this->Session->read('Auth.User.id');
        
        $administrador = $this->User->find('first', array(
        'conditions'=>array('User.id'=>$idUsuario,'Group.name LIKE'=>'%administrador%')
        ));
        
        if(empty($administrador)){
            $this->Session->setFlash('Ud. no tiene suficientes privilegios para realizar esta accion, comuniquese con su administrador', 'alerts/alert');
            $this->Session->redirect(array('action'=>'verpedido', $idPedido));
        }
        
        $idAdmin = $administrador['User']['id'];
        $pedido = $this->Pedido->find('first', array('conditions'=>array('Pedido.id'=>$idPedido)));
        
        $pedidoNumero = $pedido['Pedido']['numero'];
        $idMesa = $pedido['Pedido']['mesa_id'];
        $items = $pedido['Item'];
        $i=0;
        $j=0;
        $aderezos = array();
        $insumos1 = array();
        $insumos = array();
        
        foreach($items as $item){
            
            if($item['nropizza'] == null){
                
                //insumos
                $idProducto = $item['producto_id'];
            
                $cantidades = $this->InsumosProducto->find('all',array(
                'conditions'=>array('InsumosProducto.producto_id'=>$idProducto),
                'recursive'=>-1
                ));
                
                foreach($cantidades as $cantidad){
                    
                    $idInsumo = $cantidad['InsumosProducto']['insumo_id'];
                    
                    $ingredientesquitado= $this->Item->find('count', array(
                    'conditions'=>array('Item.pedido_id'=>$idPedido,'Item.producto_id'=>$idProducto, 'Item.aderezo_id'=>null, 'Item.insumo_id'=>$idInsumo)
                    ));
                    
                    if(empty($ingredientesquitado)){
                        $insumos[$i]['insumo_id']=$idInsumo;
                        $insumos[$i]['cantidadInsumo']=$cantidad['InsumosProducto']['cantidad'];
                        $insumos[$i]['cantidaPedidaProducto']= $item['cantidad'];
                        $insumos[$i]['clase_id'] = $item['clase_id'];
                        $i++;     
                    }
                       
                }
               
                
                  
            }else{
                //aderezos
                if($item['aderezo_id']!=null){
                $idAderezo = $item['aderezo_id'];
                $aderezos[$j]['aderezo_id']= $idAderezo;
                $aderezos[$j]['insumo_id'] = $item['insumo_id'];
                $aderezos[$j]['cantidaPedidaProducto']= 1;
                $aderezos[$j]['clase_id'] = $item['clase_id'];
                $j++;
                }
            }
        }
     
        if (!empty($aderezos)) {
           
                $d = 0;
                $e = 0;
                foreach ($aderezos as $aderezo) {
                       
                        $datosAderezo = $this->Aderezo->find('first', array(
                        'conditions' => array('Aderezo.id' =>
                                    $aderezo['aderezo_id'])));

                        $aderezonombre = $datosAderezo['Insumo']['nombre'];
                        $aderezoId = $datosAderezo['Aderezo']['id'];
                        $precio = $datosAderezo['Aderezo']['precio'];
                        $insumo = $datosAderezo['Aderezo']['insumo_id'];
                        $cantidadInsumo = $datosAderezo['Aderezo']['porcion'];
                        /*vermovimiento*/
                        $lugar = $this->Insumo->find('first', array('conditions' => array('Insumo.id' =>$insumo)));

                        $lugarInsumo = $lugar['Insumo']['lugare_id'];

                        $movimiento = $this->Movimiento->find('first', array(
                            'recursive' => -1,
                            'fields' => array('MAX(id) as cod'),
                            'conditions' => array('Movimiento.insumo_id' => $insumo, 'Movimiento.lugare_id' =>
                                    $lugarInsumo)));


                        $ultimoMovimiento = $this->Movimiento->find('first', array(
                            'recursive' => -1,
                            'fields' => array(
                                'Movimiento.insumo_id',
                                'Movimiento.ingreso',
                                'Movimiento.salida',
                                'Movimiento.total',
                                'Movimiento.totalp',
                                'Movimiento.pesoneto',
                                'Movimiento.pesototal',
                                'Movimiento.pesoparcial',
                                'Movimiento.pesoresidual',
                                'Movimiento.lugare_id',
                                'Movimiento.user_id',
                                'Movimiento.pedido_id'),
                            'conditions' => array('Movimiento.id' => $movimiento[0]['cod'])));
                       
                       
                        /*fin vermovimiento*/
                       
                        if (!empty($ultimoMovimiento)) {
                            $peso = $ultimoMovimiento['Movimiento']['pesoneto'];
                            
                             $this->request->data['Movimiento']['insumo_id'] = $insumo;
                             $this->request->data['Movimiento']['lugare_id'] = $lugarInsumo;
                             $this->request->data['Movimiento']['user_id'] = $this->Session->read('Auth.User.id');
                             $this->request->data['Movimiento']['pedido_id'] = null;
                             $this->request->data['Movimiento']['pesoneto'] = $peso;
                             if($this->request->data['Movimiento']['pesoresidual'] != 0 || $this->request->data['Movimiento']['pesoresidual'] != null){
                                $this->request->data['Movimiento']['pesoresidual'] = $ultimoMovimiento['Movimiento']['pesoresidual'] - $cantidadInsumo;   
                             }else{
                                $this->request->data['Movimiento']['pesoresidual'] = $ultimoMovimiento['Movimiento']['pesoresidual'];
                             }       
                             
                             // echo "Peso neto: ".$peso."<br/>";
                             // echo "Cantidad ingrediente descuento: ".$cantidadInsumo;
                              
                             if ($peso < $cantidadInsumo) { 
                                    
                                $cantidadUnidades = $cantidadInsumo / $peso;
                                
                                $parcial = $peso - ($cantidadInsumo - ($cantidadUnidades * $peso));
                                    
                                $arreglo_cadena = explode(".", $cantidadUnidades);
                                $parte_entera = $arreglo_cadena[0];
                                $parte_decimal = $arreglo_cadena[1];
                                $unidades = floor($cantidadUnidades);
                                
                                if ($parte_decimal != null) {

                                    $parcial = $peso - ($cantidadInsumo - ($unidades * $peso));

                                } else {
                                    $parcial = 0;
                                }
                                
                                //echo "Unidades ".$unidades;
                                //echo "Parcial ".$parcial;
                                //echo "residuo anterior ".$ultimoMovimiento['Movimiento']['pesoparcial']."<br/>";
                                $diferencia = $parcial + $ultimoMovimiento['Movimiento']['pesoparcial'];
                               
                                if($peso == $diferencia){
                                    
                                     $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'] + $unidades + 1;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - ($unidades + 1);
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] + $unidades + 1;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] + $unidades + 1;
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'];
                                    $this->request->data['Movimiento']['pesoparcial'] = 0;
                                   
                                }else{
                                    
                            
                                    $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'] + $unidades;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - $unidades;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] +
                                        $unidades;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] +
                                        $unidades;
                                    
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'] + $parcial;
                                    $this->request->data['Movimiento']['pesoparcial'] = $ultimoMovimiento['Movimiento']['pesoparcial']+ $parcial;
                                   }

                                } elseif($peso == $cantidadInsumo){
                                         $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso']+1;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - 1;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] +
                                        1;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] +
                                        1;
                                    
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'];
                                    $this->request->data['Movimiento']['pesoparcial'] = $ultimoMovimiento['Movimiento']['pesoparcial'];
                                    
                                }elseif($peso == ($cantidadInsumo + $ultimoMovimiento['Movimiento']['pesoparcial'])){
                                     $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'] + 1;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - 1;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] + 1;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] + 1;
                                    $this->request->data['Movimiento']['pesototal'] = 0;
                                    $this->request->data['Movimiento']['pesoparcial'] =0;
                                    
                                }else{
                                    $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'];
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'];
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total']; 
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'];
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'] + $cantidadInsumo;
                                    $this->request->data['Movimiento']['pesoparcial'] =$ultimoMovimiento['Movimiento']['pesoparcial'] + $cantidadInsumo;
                                }
                            //debug($this->request->data['Movimiento']);    
                           $this->Movimiento->create();
                            if ($this->Movimiento->save($this->request->data['Movimiento'])) {
                                $d++;
                           }
                        } else{
                            $data = array('id' => $idMesa, 'estado' => 1);
                            $this->Mesa->save($data);
                            $this->Session->setFlash(__("Error al tratar de cancelar el pedido<br/> intentelo de nuevo!"),
                            'alerts/alert');
                            $this->redirect(array('controller' => 'pagos', 'action' => 'verpedido', $idPedido));
                        }
                        
                        

                } //end for de adererezos para el descuento en movimientos
                
               
            //fin se registraron aderezos en tiems de pedido

           

        } //fin en el caso de que hayan aderezos adicionales
        //fin aderezos
       
       $ingredientestotal = 0;
     
        foreach ($insumos as $dato) {
            
            $ingredientestotal++;
                $veces = $dato['cantidaPedidaProducto'];
                $idInsumo = $dato['insumo_id'];
                $cantidadInsumo = $dato['cantidadInsumo'];
                $idClase = $dato['clase_id'];
                
                $clases = $this->Clase->find('first', array('conditions' => array('Clase.id' =>
                            $idClase)));
                
                if ($clases['Clase']['tipo'] == "bebida") {
                    $lugarInsumo = $clases['Clase']['lugare_id'];
                } else {
                    $lugar = $this->Insumo->find('first', array('conditions' => array('Insumo.id' =>
                                $idInsumo)));
                    $lugarInsumo = $lugar['Insumo']['lugare_id'];
                }

                /*vermovimiento*/
                $movimiento = $this->Movimiento->find('first', array(
                    'recursive' => -1,
                    'fields' => array('MAX(id) as cod'),
                    'conditions' => array('Movimiento.insumo_id' => $idInsumo,
                            'Movimiento.lugare_id' => $lugarInsumo)));

                $ultimoMovimiento = $this->Movimiento->find('first', array(
                    'recursive' => -1,
                    'fields' => array(
                        'Movimiento.insumo_id',
                        'Movimiento.ingreso',
                        'Movimiento.salida',
                        'Movimiento.total',
                        'Movimiento.totalp',
                        'Movimiento.pesoneto',
                        'Movimiento.pesototal',
                        'Movimiento.pesoparcial',
                        'Movimiento.pesoresidual',
                        'Movimiento.lugare_id',
                        'Movimiento.user_id',
                        'Movimiento.pedido_id'),
                    'conditions' => array('Movimiento.id' => $movimiento[0]['cod'])));

                $this->request->data = "";
                $peso = $ultimoMovimiento['Movimiento']['pesoneto'];
                
                if (!empty($ultimoMovimiento)) {
                    
                    $peso = $ultimoMovimiento['Movimiento']['pesoneto'];
                            
                    $this->request->data['Movimiento']['insumo_id'] = $idInsumo;
                    $this->request->data['Movimiento']['lugare_id'] = $lugarInsumo;
                    $this->request->data['Movimiento']['user_id'] = $this->Session->read('Auth.User.id');
                    $this->request->data['Movimiento']['pedido_id'] = null;
                    $this->request->data['Movimiento']['pesoneto'] = $peso;
                    
                    if($this->request->data['Movimiento']['pesoresidual'] != 0 || $this->request->data['Movimiento']['pesoresidual'] != null){
                        $this->request->data['Movimiento']['pesoresidual'] = $ultimoMovimiento['Movimiento']['pesoresidual'] - $cantidadInsumo;   
                    }else{
                        $this->request->data['Movimiento']['pesoresidual'] = $ultimoMovimiento['Movimiento']['pesoresidual'];
                    } 
                    //echo "Peso neto: ".$peso;
                    //echo "Cantidad ingrediente descuento: ".$cantidadInsumo;       
                    
                    if ($peso < $cantidadInsumo) { 
                                    
                        $cantidadInsumo2 = $cantidadInsumo - $ultimoMovimiento['Movimiento']['pesoparcial'];
                        $cantidadUnidades = $cantidadInsumo2 / $peso;
                        $arreglo_cadena = explode(".", $cantidadUnidades);
                        $parte_entera = $arreglo_cadena[0];
                        $parte_decimal = $arreglo_cadena[1];
                        $cantidadUnidades = floor($cantidadUnidades);
                        $unidades = $cantidadUnidades * $veces;

                                if ($parte_decimal != null) {

                                    $parcial = $peso - ($cantidadInsumo2 - ($unidades * $peso));

                                } else {
                                    $parcial = 0;
                                }  
                                $parcial = $parcial * $veces;
                                
                               // echo "Unidades ".$unidades;
                               // echo "Parcial ".$parcial;
                               // echo "Veces a descontar ".$veces;
                                
                                if($peso == ($parcial + $ultimoMovimiento['Movimiento']['pesoparcial'])){
                                    $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'] + $unidades + 1;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - $unidades;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] + $unidades + 1;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] + $unidades + 1;
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'];
                                    $this->request->data['Movimiento']['pesoparcial'] = 0;
                                   
                                   }else{
                                    
                            
                                    $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'] + $unidades;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - $unidades;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] +
                                        $unidades;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] +
                                        $unidades;
                                    
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'] + $parcial;
                                    $this->request->data['Movimiento']['pesoparcial'] = $ultimoMovimiento['Movimiento']['pesoparcial']+ $parcial;
                                   }

                                } elseif($peso == $cantidadInsumo){
                                    
                                    $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso']+1;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - 1;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] +
                                        1;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] +
                                        1;
                                    
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'];
                                    $this->request->data['Movimiento']['pesoparcial'] = $ultimoMovimiento['Movimiento']['pesoparcial'];
                                    
                                }elseif($peso == ($cantidadInsumo + $ultimoMovimiento['Movimiento']['pesoparcial'])){
                                     $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'] + 1;
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'] - 1;
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total'] + 1;
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'] + 1;
                                    $this->request->data['Movimiento']['pesototal'] = 0;
                                    $this->request->data['Movimiento']['pesoparcial'] =0;
                                    
                                }else{
                                    $this->request->data['Movimiento']['ingreso'] = $ultimoMovimiento['Movimiento']['ingreso'];
                                    $this->request->data['Movimiento']['salida'] = $ultimoMovimiento['Movimiento']['salida'];
                                    $this->request->data['Movimiento']['total'] = $ultimoMovimiento['Movimiento']['total']; 
                                    $this->request->data['Movimiento']['totalp'] = $ultimoMovimiento['Movimiento']['totalp'];
                                    $this->request->data['Movimiento']['pesototal'] = $ultimoMovimiento['Movimiento']['pesototal'] + $cantidadInsumo;
                                    $this->request->data['Movimiento']['pesoparcial'] =$ultimoMovimiento['Movimiento']['pesoparcial'] + $cantidadInsumo;
                                }
                           // debug($this->request->data['Movimiento']);
                            $this->Movimiento->create();
                            if ($this->Movimiento->save($this->request->data['Movimiento'])) {
                                $d++;
                           }
                }  //fin en el caaso de ser el primer registro
                
                //fin if ingrediente seleccionado a usar
            
        } //fin foreach de todos los insumos
        //echo "fin insumos y aderezos";exit;
      $this->Pedido->deleteAll(array('Pedido.id' => $idPedido), false);
      $this->Item->deleteAll(array('Item.pedido_id' => $idPedido), false);
      $this->Movimiento->deleteAll(array('Movimiento.pedido_id' => $idPedido), false);
      $data = array('id' => $idMesa, 'estado' => 1);
      $this->Mesa->save($data);
      $this->Session->setFlash(__('Se cancelo el pedido NRO '.$pedidoNumero), 'alerts/bueno');
      $this->redirect(array('controller' => 'pagos', 'action'=>'index'));

    }
    public function imprimircuenta($idPedido=null){
        
        $this->layout = 'imprimir';
        $datosPedido = $this->Pedido->find('first', array(
        'conditions'=>array('Pedido.id'=>$idPedido)
        ));
        
        $mozo = $datosPedido['Usuario']['nombre'];
        $mesa = $datosPedido['Pedido']['mesa'];
        $pedido = $this->Item->find('all', array(
        'conditions'=>array('Item.pedido_id'=>$idPedido)
        ));
        //debug($pedido);exit;
        $this->set(compact('pedido', 'idPedido', 'mozo', 'mesa'));

    }
    
}
    